<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 1.Number.EPSILON 是javascript中一个很小的数，用于判断一个数是否接近于0
    console.log(Number.EPSILON) // 2.220446049250313e-16

    console.log(0.1 + 0.2);
    console.log(0.1 + 0.2 === 0.3); // false
    // 使用EPSILON解决这个问题
    function equal(a, b) {
        if (Math.abs(a - b) < Number.EPSILON) {
            return true;
        } else {
            return false;
        }
    }
    console.log(equal(0.1 + 0.2, 0.3)); // true

    // 1.二进制、八进制、十进制、十六进制
    console.log(0b11);// 3 二进制
    console.log(0o777); // 511 八进制
    console.log(100); // 十进制
    console.log(0xff); // 255 十六进制

    // 2.检测一个数字是否是有限的
    console.log(Number.isFinite(100)); // true
    console.log(Number.isFinite(100 / 0)); // false
    console.log(Number.isFinite(100 / 'a')); // false
    console.log(Number.isFinite(100 / '1')); // true
    console.log(Number.isFinite(Infinity)); // false
    console.log(Number.isFinite(NaN));      // false
    console.log(Number.isFinite(undefined)); // false

    // 3.isNaN(value) 检测数值是不是NaN
    console.log(Number.isNaN(100)); // false
    console.log(Number.isNaN(100 / 0)); // false
    console.log(Number.isNaN(100 / 'a')); // true
    console.log(Number.isNaN(NaN));      // true
    console.log(Number.isNaN(undefined)); // false

    // 4.Number.parseFloat(value),parseInt(value)
    console.log(Number.parseFloat('123.456mortal'));
    console.log(Number.parseInt('123.456'));

    // 5.Number.isInteger(value) 判断一个数字是否为整数
    console.log(Number.isInteger(100)); // true
    console.log(Number.isInteger(100.1)); // false
    console.log(Number.isInteger(NaN)); // false
    console.log(Number.isInteger(Infinity)); // false
    console.log(Number.isInteger(undefined)); // false

    //6.Math.trunc(value) 返回一个整数部分
    console.log(Math.trunc(123.456)); // 123
    console.log(Math.trunc(-123.456)); // -123

    //7.Number.isSafeInteger(value) 判断一个数字是否为安全整数
    console.log(Number.isSafeInteger(100)); // true
    console.log(Number.isSafeInteger(100.1)); // false

    // 8.Math.sign(value) 返回一个数字是正数、负数还是零
    console.log(Math.sign(100)); // 1
    console.log(Math.sign(-100)); // -1
    console.log(Math.sign(0)); // 0
    console.log(Math.sign(-0)); // -0
    console.log(Math.sign(NaN)); // NaN
    console.log(Math.sign("100"));// 1


</script>

</html>